var tableIns;
layui.use(['form', 'layer', 'laydate', 'table', 'laytpl'], function () {
    var form = layui.form,
        layer = parent.layer === undefined ? layui.layer : top.layer,
        $ = layui.jquery,
        laydate = layui.laydate,
        laytpl = layui.laytpl,
        table = layui.table;
    var TableCheckData = [];
    var config = {
            elem: '#stateList',
            url: "/main/getCaseList",
            cellMinWidth: 95,
            page: true,
            height: "full-125",
            limit: 10,
            limits: [10, 15, 20, 25],
            id: "stateListTable",
            done:function(obj1,obj2){
            	if(TableCheckData.length>0){
            		if(TableCheckData.length == 1){
            			for(var i = 0 ; i<obj1.data.length;i++){
                    		if(TableCheckData[0].id == obj1.data[i].id){//选中
                    			$(".layui-table-body tr[data-index='"+i+"'] .layui-form-checkbox").attr("class","layui-unselect layui-form-checkbox layui-form-checked");
                    		}
                    	}
            		}else{
            			for(var i = 0 ; i<obj1.data.length;i++){
                    		if(TableCheckData[0].id == obj1.data[i].id || TableCheckData[1].id == obj1.data[i].id){//选中
                    			$(".layui-table-body tr[data-index='"+i+"'] .layui-form-checkbox").attr("class","layui-unselect layui-form-checkbox layui-form-checked");
                    		}
                    	}
            		}
            		
            	}
            	
            },
            cols: [[
                //{field: 'caseNo', title: 'ID', align: "center"},
            	{type: 'checkbox', fixed: 'left',hide:true},
            	{field: 'caseNoBuy', minWidth: 230, title: '位置(储物柜)',align: "center", sort: true,templet: function(d){
            		var str="";
            		if(isNotNull(d.place)||isNotNull(d.caseNoBuy)){
            			var str="";
            			var caseNoBuy="";
            			if(isNotNull(d.caseNoBuy)){
            				str="号柜";
            				caseNoBuy=d.caseNoBuy;
            			}
            			return  d.place +'<span style="color:#FF5722;margin-left:6px">'+ caseNoBuy +'</span>'+str 
            		}else{
            			return  d.caseNo 
            		}
            	}},
                {field: 'isOnline', title: '在线', align: "center", templet: "#isOnline", width: 100},
                //{field: 'isNormal', title: '是否正常', align: "center", templet: "#isNormal", width: 100},
                {field: 'boxNumber', title: '门数', align: 'center', width: 100},
                {field: 'useCase', title: '使用情况', align: 'center', width: 120},
                {field: 'switchCase', title: '开关状态', align: 'center', width: 120},
                {field: 'type', title: '规则', align: 'center'},
                {field: 'compName', title: '所属公司', align: 'center'},
                {field: 'useEndTime', title: '使用到期时间', align: 'center'},//caseUseTime:list
                {title: '操作', templet: '#stateListBar', align: "center" }
            ]]
        };
    if(!isNotNull(sessionStorage.getItem("caseUseTime"))){
    	for (var i = 0; i < config.cols[0].length; i++) {
			if(config.cols[0][i].field == 'useEndTime'){
		    	config.cols[0].splice(i,1);
		    	break;
			}
		}
    }
    sessionStorage.removeItem("caseUseTime"); 
    tableIns = table.render(config);
    //空字符串校验
    function isNotNull(obj){
	    var result = true;
	    switch (obj) {
	        case undefined:
	        case null:
	            result = false;
	            break;
	    }
	    if(result){
	        if(obj.replace(/\s+/g,"") == ""){//空字符串校验
	            result = false;
	        }
	    }
	    return result;
	}
    //表单序列化排除空值的问题
    function serializeRemoveNull(serStr){
	    return serStr.split("&").filter(str => !str.endsWith("=")).join("&");
	}
    //是否在线
    form.on("select(selectOnline)", function (data) {
        id = data.value;
        // console.log(id)
        //执行重载
        table.reload('stateListTable', {
            url: '/main/getCaseList'
            , page: {
                curr: 1 //重新从第 1 页开始
            }
            , where: {
                isOnline: id
            }
        });
    })

    var useTypeId = 0;
    //用途
    form.on("select(select)", function (data) {
        id = data.value;

        // console.log(id)

        //执行重载

        table.reload('stateListTable', {
            url: '/main/getCaseList'
            , page: {
                curr: 1 //重新从第 1 页开始
            }
            , where: {
                useTypeId: id
            }
        });
    })

    if ($("#compId").val() == 0) {
        $(".selectComp").show();
    } else {
        $(".selectComp").hide();
    }
    //公司
    form.on("select(selectComp)", function (data) {
        id = data.value;

        // console.log(id)

        //执行重载

        table.reload('stateListTable', {
            url: '/main/getCaseList'
            , page: {
                curr: 1 //重新从第 1 页开始
            }
            , where: {
                compId: id
            }
        });
    })

    $(".like").on("click", "a", function () {
        var like = $(".like input").val();
        // console.log(like)
        table.reload('stateListTable', {
            url:  '/main/getCaseList'
            , page: {
                curr: 1 //重新从第 1 页开始
            }
            , where: {
                like: "%" + like + "%"
            }
        });
    })
    
    
	 $(".replace").on("click", function () {
		 //不隐藏替换按钮版本
//		 $.ajax({
//				url:"/main/boxReplace",
//				type:"post",
//				dataType: 'json',
//				data:{"permissionFlag":"true"},
//				success:function(res){
//					if(res.success){
//						layer.msg('<font style="font-size:16px">请选择需要替换的储物柜</font>', {
//					        time: 1600, //20s后自动关闭
//					        btn: ['知道了']
//					      });
//					 $(".replaceBox").show();
//					 renderTable(false)
//					}else{
//						// 提示失败或没有权限
//		                layer.open({
//		                    title: '温馨提示'
//		                    , content: res.message
//		                });
//					}
//				}
//			})
		 //隐藏替换按钮版本
			layer.msg('<font style="font-size:16px">请选择需要替换的储物柜</font>', {
					        time: 1600, //20s后自动关闭
					        btn: ['知道了']
					      });
		 	$(".replaceBox").show();	
			renderTable(false)
		 
	    })
	    
	 $(".cancel").on("click", function () {//取消
		 $(".replaceBox").hide();
		 renderTable(true)
		 inputInitialise();
		 TableCheckData = [];
	    }
	 );
    
    $(".exchange").on("click", function () {//交换
    	if(TableCheckData!=undefined && TableCheckData.length>0){
    		var beVal = $(".beReplaced").val()
    		var beAttId = $(".beReplaced").attr("id");
    		$(".beReplaced").val($(".replacement").val())
   		  	$(".beReplaced").attr("id",$(".replacement").attr("id"))
   		  	$(".replacement").val(beVal)
   		  	$(".replacement").attr("id",beAttId)
    	}
    });
    
    $(".affirmReplace").on("click", function () {//确认
    	if($(".beReplaced").val() =="" || $(".replacement").val()==""){
    		layer.msg('<font style="font-size:16px">请选择需要替换的储物柜</font>', {
		        time: 1600, //20s后自动关闭
		        btn: ['知道了']
		      });
    	}else{
    	layer.confirm("<center>"+$(".beReplaced").val()+'<div style="color:orange">替换为</div>'+$(".replacement").val()+"</center>", {
    		  btn: ['确定','取消'] ,//按钮
    		  title: ['确认替换储物柜', 'font-size:16px;']
    		}, function(){
    			var caseNo1 = $(".beReplaced").attr("id");
    			var caseNo2 = $(".replacement").attr("id");
    			if(!isNotNull(caseNo2)){
    				caseNo2 = $(".replacement").val();
    			}
    			$.ajax({
    				url:"/main/boxReplace",
    				type:"post",
    				dataType: 'json',
    				data:{"beReplacedCaseNo":caseNo1,"replacementCaseNo":caseNo2},
    				success:function(res){
    					layer.msg(res.message);
    					renderTable(false);
    					inputInitialise();
    					TableCheckData = [];
    				}
    			})
    		}, function(){
    			layer.msg('已取消替换', {icon: 2});
    		});
    	
    	}

    });
    /*  $(".ul li").on("click",function(){
          table.reload('stateListTable', {
            url: '/main/getCaseList'
            ,where: {
               useTypeId: this.id
            } 
          });
      })*/
	    
    //重新渲染表格
    function renderTable(flag) {
    	var height = "full-125";
    	if(!flag){
    		height="full-180";
    	}
    	config.height=height;
    	config.cols[0][0].hide=flag;
    	//查询条件 恢复默认
    	$("#selectOnline select").val("-1")
    	$("#useType select").val("0")
    	$("#selectComp select").val("-1")
    	layui.form.render('select')//layui中设置选中项后 需要更新
    	$("#like").val("")
    	table.render(config);
    }
    //柜子详情
    function stateEdit(edit) {
    	var index = layui.layer.open({
            title: '柜子详情',
            type: 2,
            content: "/stateDetails/index?caseNo=" + edit.caseNo,
            success: function (layero, index) {
                var body = layui.layer.getChildFrame('body', index);
                if (edit) {
                    body.find(".id").attr("value", edit.id);
                    body.find(".useCase").val(edit.useCase);
                    body.find(".boxNumber").val(edit.boxNumber);
                    body.find(".caseNo").attr("value", edit.caseNo);
                    body.find("#des").val(edit.des);
                    body.find("#place").val(edit.place);
                    if(isNotNull(edit.useEndTime)){
                       body.find("#useEndTime").val(new Date((new Date(edit.useEndTime)).getTime()).format("yyyy-MM-dd HH:mm"));
                    }
                    body.find("#caseNoBuy").val(edit.caseNoBuy);
                    var el = body.find("#isBoxOfflineNotity");
                    if(edit.isBoxOfflineNotity==1){
                    	body.find("#isBoxOfflineNotity").attr("checked","checked")
                    	//el[0].checked =true;
                    }
                    body.find("#bindPhoneNumber").val(edit.bindPhoneNumber);
                    form.render();
                }
                setTimeout(function () {
                    layui.layer.tips('点击此处返回状态列表', '.layui-layer-setwin .layui-layer-close', {
                        tips: [2, '#000000']
                    });
                }, 500)
            }
        })
        layui.layer.full(index);
        //改变窗口大小时，重置弹窗的宽高，防止超出可视区域（如F12调出debug的操作）
        $(window).on("resize", function () {
            layui.layer.full(index);
        })
    }

    //列表操作
    table.on('tool(stateList)', function (obj) {
        var layEvent = obj.event,
            data = obj.data;

        if (layEvent === 'edit') { //编辑
            stateEdit(data);
        }
    });
    //监听复选框选择
    table.on('checkbox(stateList)', function(obj){
//	  var data = table.checkStatus('stateListTable').data;
    	if(obj.checked){
    		if(TableCheckData.length == 0){
    			TableCheckData.push(obj.data)
    		}else{
    			for(var i = 0;i<TableCheckData.length;i++){
        			if(obj.data.id!=TableCheckData[i].id){
        				TableCheckData.push(obj.data)
        			}
        		}
    		}
    	}else{
    		TableCheckData = table.checkStatus('stateListTable').data;
    	}
	  if(TableCheckData.length>2){
		  TableCheckData = []
		  renderTable(false);
	  }
	  var value = obj.data;//点击的值
	  if(value==undefined||value==""){
		  value="";
	  }else{
		  if(value.place==undefined||value.place==""){
			  value = value.caseNo;
		  }else{
			  value = value.place+value.caseNoBuy+"号柜";
		  }
	  }
	  if(obj.checked && TableCheckData.length==1){//第一次选中第一个
		  $(".beReplaced").val(value)
		  $(".beReplaced").attr("id",obj.data.caseNo)
	  }else if(obj.checked && TableCheckData.length==2){
		  if($(".beReplaced").attr("id")=="" || undefined){
			  $(".beReplaced").val(value)
			  $(".beReplaced").attr("id",obj.data.caseNo)
			 
		  }else{
			  $(".replacement").val(value)
			  $(".replacement").attr("id",obj.data.caseNo)
		  }
	  }
	  if(TableCheckData.length==1 && !obj.checked){//取消了一个
		  if(obj.data.caseNo == $(".beReplaced").attr("id")){//是取消的第一个
			  $(".beReplaced").val("")
			  $(".beReplaced").attr("id","")
		  }else{
			  $(".replacement").val("")
			  $(".replacement").attr("id","")
		  }
	  }else if(TableCheckData.length==0){
		  inputInitialise();
	  }
	  
	 

	  
	});
    function inputInitialise(){
		  $(".beReplaced").val("")
		  $(".beReplaced").attr("id","")
		  $(".replacement").val("")
		  $(".replacement").attr("id","")
	  }
    
    $("[data-type='checkbox']").css('display','none'); 
})

